The subject matter disclosed herein relates generally to a method and apparatus for tracking changes in an industrial controller and, more specifically, to a system for tracking changes in each level of a project within an industrial controller, rolling those changes up to a top level of the project, and storing those changes within the industrial controller.
Industrial controllers are special purpose computers used for controlling factory automation and the like. Industrial controllers typically execute a control program highly customized to a particular control application. Special control languages, such as “relay ladder logic” are normally used to facilitate programming of the device. Under the direction of the stored program, a processor of the industrial controller periodically examines the state of input devices and updates the state of output devices. In order to ensure predictable control of a machine or process, the control program must be highly reliable and deterministic, that is, executing at well-defined time periods.
Industrial controllers differ from conventional computers in a number of ways. Physically, they are constructed to be substantially more robust against shock and vibration and to better resist extreme environmental conditions than conventional computers. The processors and operating systems are optimized for real-time control and are programmed with languages designed to permit rapid development of control programs tailored to a constantly varying set of machine control or process control applications.
Generally, the industrial controllers have a highly modular architecture that allows, for example, different numbers and types of input and output modules to be used to connect the controller to the process or machinery to be controlled. This modularity is facilitated through the use of special “control networks” suitable for highly reliable and available real-time communication. Such control networks (for example, ControlNet, EtherNet/IP, or DeviceNet) differ from standard communication networks (e.g. Ethernet) by guaranteeing maximum communication delays by pre-scheduling the communication capacity of the network and/or providing redundant communication capabilities for high-avail ability. In addition, packets transmitted on the control network are formatted according to a protocol defined for the particular network, such as a Common Industrial Protocol (CIP).
As industrial processes grow in complexity, an increasing number of devices are being connected to the industrial controller. The modular architecture allows control modules to be distributed about a machine or along a process line. The increasing number of modules and distribution of these devices about the machine require more complex control programs. For example, a project may be defined for the controlled project. The project may include a control program executable on a primary processor module as well as one or more routines executable on remote modules. The control program on the primary processor may include a top level routine that schedules execution of and calls other routines executing on the primary processor as well as those routines executing on the remote modules. The project may also define certain operating parameters, such as a desired speed, pressure, temperature, etc. . . . at which the controlled process operates or certain configuration parameters, such as the number of inputs or outputs or type of network interface present, which define how each module operates.
In addition, the controlled machine or process may change over time. Additional modules may be added or existing modules may be upgraded. A different product may be manufactured or a different process followed to manufacture the same product. These changes to the hardware and/or controlled process may require changes and/or additions to the control program and/or parameters in the project. Designated personnel may connect to the industrial controller to make the required changes to the project, for example, via a remote server, a mobile computing device, or a local operator interface. However, certain industries, such as chemical or pharmaceutical manufacturers have established strict requirements regulating automated manufacturing processes in order to protect consumers of the products. Each change may require one or more validation procedures be executed to verify proper operation of a controlled process after making a change.
Presently, a control system operating in such an environment may include a supervisory system. The supervisory system may require users to log in and track changes to the project as they are made. The supervisory system may also provide notification to a user when changes are made. The supervisory system typically requires access at a predefined location. While this location may be close to the primary processor module, changes at remote modules may require a technician connecting a mobile computing device to the module at the remote location. Further, if personnel fail to follow procedure or are unaware of the proper procedure, they may connect directly to the primary processor module and make changes to the project without using the supervisory system. While the supervisory system may periodically upload the project (e.g., on a daily basis) and compare the project in the industrial controller to a copy of the project stored on the supervisory system, the potential exists for operation of the controlled machine or process to occur in the interim between making the change and the subsequent periodic verification. Thus, it would be desirable to provide an improved method and system for tracking changes in an industrial controller.